package com.blog4j.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.blog4j.api.vo.NoticeVo;
import com.blog4j.system.entity.NoticeEntity;
import com.blog4j.system.vo.req.CreateNoticeReqVo;
import com.blog4j.system.vo.req.EditNoticeReqVo;
import com.blog4j.system.vo.req.NoticeListReqVo;
import com.blog4j.system.vo.resp.NoticeRespVo;
import com.github.pagehelper.PageInfo;

/**
 * @author 98k灬
 * @version v1.0.0
 * @Description : 功能描述
 * @Create on : 2024/7/20 08:46
 **/
public interface NoticeService extends IService<NoticeEntity> {
    /**
     * 获取公告信息
     *
     * @param noticeType 公告类型
     * @return 公告信息
     */
    NoticeRespVo systemNotice(Integer noticeType);

    /**
     * 获取全部公告信息
     *
     * @param reqVo 请求信息
     * @return 全部公告信息
     */
    PageInfo<NoticeRespVo> allNotice(NoticeListReqVo reqVo);

    /**
     * 获取公告详情
     *
     * @param id 公共ID
     * @return 告详情
     */
    NoticeRespVo noticeDetail(Integer id);

    /**
     * 编辑公告
     *
     * @param reqVo 请求信息
     */
    void editNotice(EditNoticeReqVo reqVo);

    /**
     * 删除公告
     *
     * @param id 公告ID
     */
    void delNotice(Integer id);

    /**
     * 创建公告
     *
     * @param reqVo 请求信息
     */
    void createNotice(CreateNoticeReqVo reqVo);

    /**
     * 获取公告信息
     *
     * @param type           公告类型
     * @param organizationId 组织ID
     * @return 公告信息
     */
    NoticeVo noticeInfo(Integer type, String organizationId);
}
